package com.srp.backend.mapper;

import com.srp.backend.entity.PdfParseResult;
import org.apache.ibatis.annotations.*;

import java.util.List;

/**
 * PdfParseResult的 MyBatis 映射接口
 * 用于操作数据库中的 pdf_parse_result 表
 */
@Mapper
public interface PdfParseResultMapper {
    /**
     * 插入解析结果
     * @param result 解析结果实体
     * @return 插入成功的行数
     */
    @Insert("INSERT INTO pdf_parse_result(file_path, status, content, create_time)"+"VALUES(#{filePath}, #{status}, #{content}, #{createTime})")
    @Options(useGeneratedKeys = true, keyProperty = "id")
    int insert(PdfParseResult result);

    /**
     * 根据 ID 查询解析结果
     * @param id 主键
     * @return PdfParseResult 实体
     */
    @Select("SELECT * FROM pdf_parse_result WHERE id = #{id}")
    PdfParseResult findById(Long id);

    /**
     * 查询所有解析结果
     * @return 结果列表
     */
    @Select("SELECT * FROM pdf_parse_result ORDER BY create_time DESC")
    @Results({
            @Result(column = "file_path", property = "filePath"),
            @Result(column = "create_time", property = "createTime")
    })
    List<PdfParseResult> findAll();

    /**
     * 更新解析结果
     * @param result PdfParseResult 实体
     * @return 影响的行数
     */
    @Update("UPDATE pdf_parse_result SET status = #{status}, content = #{content} WHERE id = #{id}")
    int update(PdfParseResult result);

    /**
     * 根据 ID 删除解析结果
     * @param id 主键
     * @return 删除成功的行数
     */
    @Delete("DELETE FROM pdf_parse_result WHERE id = #{id}")
    int deleteById(Long id);
}
